package br.com.officium.managedbean.cadastro;

import br.com.officium.entidade.cadastro.OutrosEnvolvidos;
import br.com.officium.entidade.cadastro.Recurso;
import br.com.officium.entidade.cadastro.SituacaoRecurso;
import br.com.officium.sessionbean.OutrosEnvolvidosBsn;
import br.com.officium.sessionbean.RecursoBsn;
import br.com.officium.util.BeanUtil;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author Ivo
 */
@ManagedBean
@ViewScoped
public class RecursoBean extends CadastroAbstractBean {
    
    @EJB
    private RecursoBsn recursoBsn;
    @EJB
    private OutrosEnvolvidosBsn outrosEnvolvidosBsn;
    private Recurso recurso;
    private List<Recurso> recursos;
    private SituacaoRecurso situacao;
    private List<SituacaoRecurso> situacoes;
    private OutrosEnvolvidos outroEnvolvido;
    private List<OutrosEnvolvidos> outrosEnvolvidos;

    public RecursoBean() {
    }

    private void clear() {
        this.recurso = new Recurso();
        this.situacao = new SituacaoRecurso();
        super.cleanSubmittedValues(panelForm);
    }

    @Override
    public String listar() {
        setCurrentState(LISTAR_STATE);
        recursos = recursoBsn.findAll();
        return "/cadastro/recurso.jsf";
    }

    @Override
    public void cadastrar() {

        try {
            recursoBsn.create(recurso);
            clear();
            BeanUtil.addInfo("Recurso criado com sucesso.");
            recursos = recursoBsn.findAll();
        } catch (Exception e) {
            BeanUtil.addError(e.getMessage());
        }

    }

    @Override
    public void editar() {

        try {
            recursoBsn.edit(recurso);
            clear();
            setCurrentState(LISTAR_STATE);
            BeanUtil.addInfo("Recurso alterado com sucesso.");
        } catch (Exception e) {
            BeanUtil.addError(e.getMessage());
        }

    }

    @Override
    public void excluir() {

        try {
            recursoBsn.remove(recurso);
            BeanUtil.addInfo("Recurso removido com sucesso.");
            recursos = recursoBsn.findAll();
        } catch (Exception e) {
            BeanUtil.addError(e.getMessage());
        }

    }

    public Recurso getRecurso() {
        return recurso;
    }

    public void setRecurso(Recurso recurso) {
        this.recurso = recurso;
    }

    public SituacaoRecurso getSituacao() {
        return situacao;
    }

    public void setSituacao(SituacaoRecurso situacao) {
        this.situacao = situacao;
    }

    public OutrosEnvolvidos getOutroEnvolvido() {
        return outroEnvolvido;
    }

    public void setOutroEnvolvido(OutrosEnvolvidos outroEnvolvido) {
        this.outroEnvolvido = outroEnvolvido;
    }

    public List<OutrosEnvolvidos> getOutrosEnvolvidos() {
        return outrosEnvolvidos;
    }

    public void setOutrosEnvolvidos(List<OutrosEnvolvidos> outrosEnvolvidos) {
        this.outrosEnvolvidos = outrosEnvolvidos;
    }

    public List<Recurso> getRecursos() {
        return recursos;
    }

    public void setRecursos(List<Recurso> recursos) {
        this.recursos = recursos;
    }

    public List<SituacaoRecurso> getSituacoes() {
        return situacoes;
    }

    public void setSituacoes(List<SituacaoRecurso> situacoes) {
        this.situacoes = situacoes;
    }

}
